1. Field of the Invention
The present invention relates to the process of compiling a computer program. More specifically, the present invention relates to a method and apparatus for optimizing the compilation of a computer program.
2. Related Art
Historically, computer programs have included only a small number of source code files of limited size, which enabled compilers to compile computer programs relatively quickly. This compilation process typically involves compiling a computer program's source code into a set of object files. Next, a linker completes the compilation process by linking these object files together with library files to create an executable file that an end user can execute.
Today, the compilation process has not changed significantly. However, the number and size of source code files associated with larger applications has increased substantially, which has increased the time it takes to compile such applications.
One way to increase the speed of compilation is to use a parallel-processing system, which uses multiple processors to compile the source code into object files. Once the parallel processors have finished creating the object files, the parallel processors send the object files to the linker, which completes the compilation process. Although parallel processing can reduce the time required to create the object files, the linking process cannot easily be improved by parallel processing and remains a time-intensive bottleneck.
Hence, what is needed is a method and apparatus for optimizing compilation of a computer program without the above-described problems.